Skip to content
This repository has been archived by the owner on Jan 27, 2025. It is now read-only.

Implement "strict" mode. #210

Merged
merged 3 commits into from
Mar 31, 2022
Merged

Implement "strict" mode. #210

merged 3 commits into from
Mar 31, 2022

Conversation

blackwinter
Copy link
Member

@blackwinter blackwinter commented Mar 30, 2022

Resolves #192.

Levels of strictness:

  • PROCESS: Abort process by throwing an exception. This is the current behaviour and the new default.
  • RECORD: Ignore (skip) failed record and log an error.
  • EXPRESSION: Ignore (skip) failed expression and log a warning.

Introduces FixProcessException to differentiate from FixExecutionException: The latter indicating potentially data-dependent issues that should be subject to strictness handling, while the former should only refer to static issues with the usage of Fix expressions.

Areas for future work:

  • Escalation strategy: Once n expressions have failed, fail the record; once n records have failed, fail the process.
  • Possibly Fix-internal configuration mechanism (#59).
  • Expression grouping (maybe() bind).

(NOTE: We can't test for expected exceptions/errors in integration tests yet.) (Resolved by e167bbe.)

Levels of strictness:

- `PROCESS`: Abort process by throwing an exception.
- `RECORD`: Ignore (skip) record and log an error.
- `EXPRESSION`: Ignore (skip) expression and log a warning.

Introduces `FixProcessException` to differentiate from `FixExecutionException`: The latter indicating potentially data-dependent issues that should be subject to strictness handling, while the former should only refer to static issues with the usage of Fix expressions.
@fsteeg fsteeg assigned blackwinter and unassigned fsteeg Mar 31, 2022
@blackwinter blackwinter merged commit dd514f7 into master Mar 31, 2022
@blackwinter blackwinter deleted the 192-implementStrictMode branch March 31, 2022 10:00
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Implement "strict" mode.
2 participants